﻿namespace Anley.DomainDrivenDesign.Contract.Configuration;

/// <summary>
/// 加密配置
/// </summary>
public class EncryptionConfiguration
{
    /// <summary>
    /// 服务端SM2配置
    /// </summary>
    public SM2EncryptionConfiguration? SM2Server { get; set; }

    /// <summary>
    /// 客户端SM2配置
    /// </summary>
    public SM2EncryptionConfiguration? SM2Client { get; set; }

    /// <summary>
    /// SM3配置
    /// </summary>
    public SM3EncryptionConfiguration? SM3 { get; set; }

    /// <summary>
    /// SM4配置
    /// </summary>
    public SM4EncryptionConfiguration? SM4 { get; set; }
}

/// <summary>
/// SM2加密配置
/// </summary>
public class SM2EncryptionConfiguration
{
    /// <summary>
    /// 公钥
    /// </summary>
    public string? PublicKey { get; set; }

    /// <summary>
    /// 私钥
    /// </summary>
    public string? PrivateKey { get; set; }
}

/// <summary>
/// SM3加密配置
/// </summary>
public class SM3EncryptionConfiguration
{
    /// <summary>
    /// 密钥
    /// </summary>
    public string? SecretKey { get; set; }
}

/// <summary>
/// SM4加密配置
/// </summary>
public class SM4EncryptionConfiguration
{
    /// <summary>
    /// 密钥
    /// </summary>
    public string? SecretKey { get; set; }
}